//
//  Phone.swift
//  Nimble
//
//  Created by George Kaimakas on 02/07/2019.
//

import Foundation

public enum Phone: String {
    case ar_DZ = "(\\+?213|0)(5|6|7)\\d{8}"
    case ar_SY = "(!?(\\+?963)|0)?9\\d{8}"
    case ar_SA = "(!?(\\+?966)|0)?5\\d{8}"
    case cs_CZ = "(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}"
    case de_DE = "(\\+?49[ \\.\\-])?([\\(]{1}[0-9]{1,6}[\\)])?([0-9 \\.\\-\\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?"
    case da_DK = "(\\+?45)?(\\d{8})"
    case en_US = "(\\+?1)?[2-9]\\d{2}[2-9](?!11)\\d{6}"
    case en_AU = "(\\+?61|0)4\\d{8}"
    case en_GB = "(\\+?44|0)7\\d{9}"
    case en_HK = "(\\+?852\\-?)?[569]\\d{3}\\-?\\d{4}"
    case en_IN = "(\\+?91|0)?[789]\\d{9}"
    case en_NZ = "(\\+?64|0)2\\d{7,9}"
    case en_ZA = "(\\+?27|0)\\d{9}"
    case en_ZM = "(\\+26)?09[567]\\d{7}"
    case es_ES = "(\\+?34)?(6\\d{1}|7[1234])\\d{7}"
    case fi_FI = "(\\+?358|0)\\s?(4(0|1|2|4|5)?|50)\\s?(\\d\\s?){4,8}\\d"
    case fr_FR = "(\\+?33|0)[67]\\d{8}"
    case hu_HU = "(\\+?36)(20|30|70)\\d{7}"
    case ms_MY = "(\\+?6?01){1}(([145]{1}(\\-|\\s)?\\d{7,8})|([236789]{1}(\\s|\\-)?\\d{7}))"
    case nb_NO = "(\\+?47)?[49]\\d{7}"
    case nl_BE_mobile = "(\\+324|00324|04)(\\d{9})"
    case nl_BE = "(\\+32|0032|0)([0-3,5-9]\\d{8})"
    case nl_NL = "(\\+31|0031|0)(\\d{9})"
    case pl_PL = "(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}"
    case pt_BR = "(\\+?55|0)\\-?[1-9]{2}\\-?[2-9]{1}\\d{3,4}\\-?\\d{4}"
    case pt_PT = "(\\+351)?9[1236]\\d{7}"
    case ru_RU = "(\\+?7|8)?9\\d{9}"
    case tr_TR = "(\\+?90|0)?5\\d{9}"
    case vi_VN = "(\\+?84|0)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})"
    case zh_CN = "(\\+?0?86\\-?)?1[345789]\\d{9}"
    case zh_TW = "(\\+?886\\-?|0)?9\\d{8}"
    case el_GR = "(\\+30)?((2\\d{9})|(69\\d{8}))"
    
}
